<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /* var googleMap = {
        show: function () {
          console.log("开始谷歌地图的渲染！");
        },
      };
      var baiduMap = {
        show: function () {
          console.log("开始谷歌地图的渲染！");
        },
      };

      var renderMap = function (map) {
        if (map.show instanceof Function) {
          map.show();
        }
      };

      renderMap(googleMap);
      renderMap(baiduMap); */

      var googleMap = {
        show: function () {
          console.log("开始谷歌地图的渲染！");
        },
      };
      var baiduMap = {
        display: function () {
          console.log("开始百度地图的渲染！");
        },
      };

      // 为百度地图添加适配器  
      // 本来百度地图没有show方法，但只有拥有show方法才能被调用
      // 因此为百度地图添加一个适配器，即将原有的display方法重新封装进一个show方法内
      var baiduMapAdapter = {
        show: function () {
          return baiduMap.display();
        },
      };
      
      var renderMap = function (map) {
        if (map.show instanceof Function) {
          map.show();
        }
      };

      renderMap(googleMap);
      renderMap(baiduMapAdapter);
    </script>
  </body>
</html>
